<?php

namespace Aws\Api\Serializer;

use Aws\Api\Shape;
use Aws\Api\ListShape;

/**
 * @internal
 */
class Ec2ParamBuilder extends QueryParamBuilder {
	protected function queryName(Shape $shape, $default = null) {
		return ($shape['queryName']
			?: ucfirst(@$shape['locationName'] ?: ""))
			?: $default;
	}

	protected function isFlat(Shape $shape) {
		return false;
	}

	protected function format_list(
		ListShape $shape,
		array     $value,
		          $prefix,
		          &$query
	) {
		// Handle empty list serialization
		if(!$value) {
			$query[$prefix] = false;
		} else {
			$items = $shape->getMember();
			foreach($value as $k => $v) {
				$this->format($items, $v, $prefix.'.'.($k + 1), $query);
			}
		}
	}
}
